
class StoreUtil {
    store = null

    upperInitail(str)//将首字母大写
    {
        return str.substring(0,1).toUpperCase()+str.substring(1)
    }

    // makeMutation(str) {
    //     let fun={}
    //     fun["set"+this.upperInitail(str)]=function(state, value) {
    //         state[str]=value
    //     }
    //     return fun
    // }

    makeMutations(strs) {
        let funs={}

        if(!(strs instanceof Array))
        {
            strs=[strs]
        }

        for(let i=0;i<strs.length;i++)
        {
            funs["set"+this.upperInitail(strs[i])]=function(state, value) {
                state[strs[i]]=value
            }
        }

        return funs
    }

    setStore(store) {
        this.store=store
    }

    upperInitail(str)//将首字母大写
    {
        return str.substring(0, 1).toUpperCase() + str.substring(1)
    }

    makeField(obj) {
        let app=this
        return {
            get() {
                console.log(app.store.state[obj])
                return app.store.state[obj]
            },
            set(value) {

                app.store.commit("set" + app.upperInitail(obj), value)
            }
        }
    }

    makeFields(strs) {
        let app=this
        let funs=[]
        if(!(strs instanceof Array))
        {
            strs=[strs]
        }

        for(let i=0;i<strs.length;i++)
        {
            funs[strs[i]]=this.makeField(strs[i])
        }

        return funs
    }
}

let storeUtil = new StoreUtil()
export default storeUtil